Задача #M080D

Память 130 MB Время 2000 ms Сложность 50 %
14

  

Вектора

Вам даются  m-штук n-мерных векторов. Также вам известны стоимости каждого вектора. Ваша задача выбрать n линейно независимых векторов с минимальной стоимостью. 

 

Линейно независимые векторы - это набор векторов, таких что ни один из них не может быть представлен в виде линейной комбинации остальных векторов в этом наборе. Формально, векторы \(v_1, v_2,…,v_n\)​ в линейном пространстве V называются линейно независимыми, если единственное решение уравнения

\(a_1 * v_1 + a_2 * v_2 + …. + a_n * v _n = 0\)

является когда \(a_1 = a_2 = a_3 = … a_n = 0\)

\(a_1, …, a_n\) - действительные числа


Входные данные:

В первой строке даются два числа \(m\) и \(n\) \((3 <= n <= 50) (n <= m <= 2000)\)

Следующие \(m\) строк содержат вектор. Все координаты векторов являются целыми числами, по модулю не превышающими 2000.

 

Следующие \(m\) строк содержат числа \(c_i\), цена \(i\) - того вектора. Цены представляют собой положительные целые числа, не превышающие 15 000.
 


Выходные данные:

Если выбрать \(n\) линейно независимых векторов не получается вывести 0, иначе вывести минимальную сумму \(n\) линейно независимых векторов. 


Примеры
# input.txt output.txt
1
5 3
1 0 0
0 1 0
0 0 1
0 0 2
0 0 3
10
20
30
10
10
40
Отправить решение
Пожалуйста, войдите в систему, чтобы выполнить это действие,если у вас нет учетной записи, вы можете зарегистрироваться в любое время